package com.yesido.moshi.seven.openandclose;

/**
 * @author yesido
 * @description 使用方  使用方应该是关闭的 原先的使用方如下
 * @date 2023-06-12 0:29
 * @Version 8.3
 */
public class GraphicEditor {
    //接收 Shape 对象，然后根据 type，来绘制不同的图形
    public void drawShape(Shape s) {
        s.draw();
    }
}

/**
 * 原先的使用方 每次新增一种图形  就需要修改这里的代码
 */
class GraphicEditor1 {
    //接收 Shape 对象，然后根据 type，来绘制不同的图形
    public void drawShape(Shape s) {
        if(s.m_type==1) {
            drawRectangle(s);
        } else if(s.m_type==2) {
            drawCircle(s);
        } else if(s.m_type==3) {
            drawTriangle(s);
        }
    }

    //绘制矩形
    public void drawRectangle(Shape r) {
        System.out.println(" 绘制矩形 ");
    }

    //绘制圆形
    public void drawCircle(Shape r) {
        System.out.println(" 绘制圆形 ");
    }

    // 绘制三角形
    public void drawTriangle(Shape r) {
        System.out.println(" 绘制三角形 ");
    }
}

